home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
util
/
wb
/
VisualPrefs_PT.lha
/
VisualPrefs_PT
/
VP-Developer_PT.doc
< prev
next >
Wrap
Text File
|
1999-02-08
|
5KB
|
121 lines
Apresentando
O INTERFACE DO VISUALPREFS PARA PROGRAMADORES
Um trabalho em curso
Se é um programador, pode aproveitar algumas das características do VisualPrefs.
Embora não exista ainda um API completo para o VisualPrefs já é possível
utilizar as classes BOOPSI que o VisualPrefs adiciona ao sistema.
O objectivo dessas classes é permitir ao programador obter facilmente um
"visual" à VisualPrefs sem ter que esperar que eu implemente uma "correcção"
no VisualPrefs para a sua aplicação. ;-)
Actualmente existe apenas uma classe:
"tbiclass" - a classe da barra de título
Esta classe proporciona as imagens mais comuns para os botões criados pelas
aplicações na barra de título das suas janelas. Exemplos disto são o botão
de "iconificar" ou o botão "padlock" do DirOpus5.
Todos os programas que usem esta classe obterão o mesmo visual para os botões
da barra de título se o VisualPrefs estiver a correr. Isto é provavelmente
melhor do que ter diversas versões da mesma imagem...
Pode usar a "tbiclass" como "sysiclass"; são ambas sub-classes da "imageclass".
Uma imagem para a "tbiclass" pode ser criada chamando NewObject() com as
segintes opções:
SYSIA_DrawInfo - Isto é absolutamente obrigatório. TEM que passar um ponteiro
DrawInfo para a "tbiclass" ou o NewObject() falhará.
SYSIA_Which - Para especificar a imagem que pretende; actualmente existem seis
tipos de imagem:
POPUPIMAGE - Imagem de botão "surgir" do MUI da barra de título.
MUIIMAGE - Imagem de botão "configuração" do MUI da barra de título.
SNAPSHOTIMAGE - Imagem de botão "instantâneo" do MUI da barra de título.
ICONIFYIMAGE - Imagem de botão "iconificar" da barra de título.
PADLOCKIMAGE - Imagem do tipo do botão "padlock" do DirOpus.
TBFRAMEIMAGE - Uma imagem de botão de barra de título vazia para
efeitos gerais.
IA_Width, IA_Height - Estes só são reconhecidos pelo tipo TBFRAMEIMAGE;
os restantes tipos de imagem ignoram-os e tem sempre
o mesmo tamanho da imagem do botão de profundidade.
SYSIA_ReferenceFont - Este só é reconhecido pelo tipo TBFRAMEIMAGE;
os restantes tipos de imagem ignoram-o e tem sempre
a mesma altura da imagem do botão de profundidade.
Claro que se o NewObject() falhar, deve providenciar uma imagem pré-definida para
os botões da sua barra de título. No entanto, planeio editar brevemente em
disquete uma versão "freeware" de imagens para a "tbiclass" que poderá incluir nas
suas aplicações. Esta classe providenciará as imagens necessárias que serão
automsticamente substituídas pelas do VisualPrefs se este estiver presente.
Por isso, pode manter as suas imagens pré-definidas muito simples. ;-)
É importante tomar nota de que todas as imagens da "tbiclasss" terão um valor
de -1 no lado esquerdo. Isto não deve ser modificado, deve colocar os seus
botões da barra de título em concordância. A razão para este aparentemente
estranho comportamento é que as imagens dos botões da barra de título da Intuition
também funcionam deste modo, e devemos tentar manter a compatibilidade com a
Intuition sempre que for possível.
Assim, ajuste o tamanho dos seus botões, se necessário, para os adaptar ao tamanho
das imagens devolvido pela classe.
Um exemplo de tudo isto pode ser:
...
/* Criar a imagem */
if (!(iconifyimage = NewObject(NULL,"tbiclass",SYSIA_Which,ICONIFYIMAGE,
SYSIA_DrawInfo,dri,
TAG_END)))
{
iconifyimage = builtin_iconifyimage;
}
/* Utilizar a imagem */
gad->GadgetRender = iconifyimage;
...
/* Libertar a imagem */
if (iconifyimage != builtin_iconifyimage) DisposeObject(iconifyimage);
...
É tudo. Por agora não tenho um verdadeiro ficheiro de inclusão, por isso,
para utilizar a "tbiclass" nas suas aplicações, por favor cole as poucas
linhas seguintes no início do seu código.
---- cortar por aqui ----8<---- cortar por aqui ----8<---- cortar por aqui ----
#define POPUPIMAGE (101)
#define MUIIMAGE (102)
#define SNAPSHOTIMAGE (103)
#define ICONIFYIMAGE (104)
#define PADLOCKIMAGE (105)
#define TBFRAMEIMAGE (106)
---- cortar por aqui ----8<---- cortar por aqui ----8<---- cortar por aqui ----
Existe já uma aplicação a usar a "tbiclass", ViNCEd por Thomas Richter.
Espero que também suporte a "tbiclass" e contribua deste modo para dar uma
aparência concistente a todos os botões das barras de título usados nas
aplicações.
Obrigado,
Massimo Tantignone (tanti@intercom.it)